/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.sadhar.sipp.anggaranpendapatanuanguktsksasuransimahasiswa;

import java.util.List;
import java.util.Map;
import org.sadhar.sia.common.ClassConnection;

/**
 *
 * @author hendro
 */
public class AnggaranPendapatanUangUKTSKSAsuransiMahasiswaDAOImpl implements AnggaranPendapatanUangUKTSKSAsuransiMahasiswaDAO {

    public List<Map> listPosPendapatan() throws Exception {
        String sql = "SELECT idPosPendapatan, posPendapatan FROM ppmk.posPendapatan WHERE idPosPendapatan=? OR idPosPendapatan=? OR " +
                "idPosPendapatan=?";
        List<Map> map = ClassConnection.getJdbc().queryForList(sql, new Object[]{
                    1, 2, 4
                });
        return map;
    }

    public List<Map> listUnitKerja() throws Exception {
        String sql = "SELECT Distinct(unkerja.idUnitKerja), unkerja.Kd_unit_kerja, unkerja.Nama_unit_kerja " +
                "FROM kamus.unkerja unkerja INNER JOIN ppmk.posAnggaranPendapatanUnit posAnggaranPendapatanUnit " +
                "ON (unkerja.Kd_unit_kerja = posAnggaranPendapatanUnit.kodeUnitKerja) " +
                "WHERE ((posAnggaranPendapatanUnit.idPosPendapatan = 1) " +
                "OR(posAnggaranPendapatanUnit.idPosPendapatan = 2)OR(posAnggaranPendapatanUnit.idPosPendapatan = 4))";
        List<Map> map = ClassConnection.getJdbc().queryForList(sql);
        return map;
    }

    public String getSql(String idPosPendapatanUnit, String kodeUnitKerja, String tahunAnggaranAwal, String tahunAnggaranAkhir) throws Exception {
        String sql = "SELECT posAnggaranPendapatanUnit.tahunAnggaran,posPendapatan.posPendapatan,unkerja.Nama_unit_kerja,anggaranPendapatanUnitUKTSKS.periode," +
                "anggaranPendapatanUnitUKTSKS.thnAngkatan,anggaranPendapatanUnitUKTSKS.jmlMhsDU,anggaranPendapatanUnitUKTSKS.jmlSKS,anggaranPendapatanUnitUKTSKS.tarif," +
                "anggaranPendapatanUnitUKTSKS.prosentase,((anggaranPendapatanUnitUKTSKS.jmlMhsDU*anggaranPendapatanUnitUKTSKS.jmlSKS*anggaranPendapatanUnitUKTSKS.tarif*anggaranPendapatanUnitUKTSKS.prosentase)/100) as jumlah " +
                "FROM ((ppmk.posAnggaranPendapatanUnit posAnggaranPendapatanUnit " +
                "INNER JOIN ppmk.anggaranPendapatanUnitUKTSKS anggaranPendapatanUnitUKTSKS " +
                "ON (posAnggaranPendapatanUnit.idPosAnggaranPendapatanUnit = anggaranPendapatanUnitUKTSKS.idPosAnggaranPendapatanUnit)) " +
                "INNER JOIN ppmk.posPendapatan posPendapatan ON (posPendapatan.idPosPendapatan = posAnggaranPendapatanUnit.idPosPendapatan)) " +
                "INNER JOIN kamus.unkerja unkerja ON (unkerja.Kd_unit_kerja = posAnggaranPendapatanUnit.kodeUnitKerja) " +
                "WHERE (posAnggaranPendapatanUnit.tahunAnggaran BETWEEN " + tahunAnggaranAwal + " AND " + tahunAnggaranAkhir + ") " +
                //"AND(anggaranPendapatanUnitUKTSKS.idPosAnggaranPendapatanUnit LIKE '%" + idPosPendapatanUnit + "%') " +
                "AND(posAnggaranPendapatanUnit.idPosPendapatan LIKE '%" + idPosPendapatanUnit + "%') " +
                "AND(posAnggaranPendapatanUnit.kodeUnitKerja LIKE '%" + kodeUnitKerja + "%')";
        return sql;
    }

    public List<Map> listTahun() throws Exception {
        String sql = "SELECT Distinct(posAnggaranPendapatanUnit.tahunAnggaran) " +
                "FROM ppmk.posAnggaranPendapatanUnit posAnggaranPendapatanUnit INNER JOIN " +
                "ppmk.anggaranPendapatanUnitUKTSKS anggaranPendapatanUnitUKTSKS " +
                "ON (posAnggaranPendapatanUnit.idPosAnggaranPendapatanUnit = anggaranPendapatanUnitUKTSKS.idPosAnggaranPendapatanUnit)";
        List<Map> map = ClassConnection.getJdbc().queryForList(sql);
        return map;
    }
}
